//============================================================================
// Name        : Compresor.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

//#define CLI

#include <iostream>
#include "compresor.h"
#include "descompresor.h"
#include "cronometro.h"
#include "parser.h"
#include "rle-encoder.h"
using namespace std;


int main(int argc, char* argv[]) {
	Parser parser(argc, argv);
	if (!parser.esValido()) {
		std::cout << MENSAJE_AYUDA;
		return ERROR_PARAMETROS_INCORRECTOS;
	} else {
		Cronometro cronometro;
		int resultado;
		RLEencoder encoder;
		if (parser.medirTiempos) cronometro.iniciar();
		if (parser.modo == COMPRIMIR) {
			resultado = encoder.comprimir(parser.getOrigen(), parser.getDestino());
		} else if (parser.modo == DESCOMPRIMIR) {
			resultado = encoder.descomprimir(parser.getOrigen(), parser.getDestino());
		}
		if (parser.medirTiempos) {
			cronometro.pausar();
			std::cout << "Tiempo de " << ((parser.modo == COMPRIMIR) ? "compresion "
					: "descompresion ") << cronometro.toString() << std::endl;
		}
		return resultado;
	}
	return 0;
}
